package skyhyun;

import java.util.Scanner;

public class J13_Switch {

	// switch
	// if ... else 의 대안으로 사용
	// if의 조건식이 지나치게 많을 경우 switch 문을 사용하면 많이 간소해짐
	// switch ( 표현식 ) {
	// case 값1 : 실행할 문장; break;
	// case 값2 : 실행할 문장; break;
	// case 값3 : 실행할 문장; break;
	// default : 실행할 문장;
	// }
	// 표현식의 결과값에 일치하는 case 내의 문장이 실행됨
	// 표현식의 결과값은 반드시 int, 열거형, 문자열(JDK7에서 추가) 중 하나이어야 함

	public static void main(String[] args) {

		// 문제 1 : 입력한 숫자의 나이대를 출력
		// 15 를 입력 -> 당신은 10대군요!
		// 35 를 입력 -> 당신은 30대군요!

		Scanner sc = new Scanner(System.in);
		System.out.print("당신의 나이를 입력하세요 : ");
		int myage = sc.nextInt();

		switch (myage / 10) {
		case 1:
			System.out.println("당신은 10대군요!!");
			break;
		case 2:
			System.out.println("당신은 20대군요!!");
			break;
		case 3:
			System.out.println("당신은 30대군요!!");
			break;
		case 4:
			System.out.println("당신은 40대군요!!");
			break;
		case 5:
			System.out.println("당신은 50대군요!!");
			break;
		case 6:
			System.out.println("당신은 60대군요!!");
			break;
		default:
			System.out.println("잘못 입력하셨습니다.");
		}

		// 문제 2 : 국어, 영어, 수학 점수를 입력받아 학점을 계산하고 출력하는 프로그램
		// 단, switch 문을 이용함
		int kor = 0;
		int eng = 0;
		int mat = 0;

		do {
			System.out.print("국어 점수를 입력하세요 : ");
			kor = sc.nextInt();
			if (kor > 100 || kor < 0) {
				System.out.println("점수를 잘못입력하셨습니다. 다시 입력해 주세요!!");
			} else {
				break;
			}
		} while (true);

		do {
			System.out.print("영어 점수를 입력하세요 : ");
			eng = sc.nextInt();
			if (eng > 100 || eng < 0) {
				System.out.println("점수를 잘못입력하셨습니다. 다시 입력해 주세요!!");
			} else {
				break;
			}
		} while (true);

		do {
			System.out.print("수학 점수를 입력하세요 : ");
			mat = sc.nextInt();
			if (mat > 100 || mat < 0) {
				System.out.println("점수를 잘못입력하셨습니다. 다시 입력해 주세요!!");
			} else {
				break;
			}
		} while (true);
		
		int tot = kor + eng + mat;
		float avg = Math.round((float) (tot * 100) / 3) / 100f;
		String grade = null;

		switch ((int) avg / 10) {
		case 10 : case 9 : grade = "수"; break;
		case 8 : grade = "우"; break;
		case 7 : grade = "미"; break;
		case 6 : grade = "양"; break;
		default : grade = "가";
		}

		System.out.println("국어점수 : " + kor + "\t영어점수 : " + eng + "\t수학점수 : "	+ mat);
		System.out.println("총점합계 : " + tot + "\t평균점수 : " + avg + "\t학점결과 : " + grade);
		
		// 문제 3 : 직급별 연봉 계산
		// 직급 (입력)  : 사원, 대리, 과장, 부장, 이사
		// 기본급 : 150, 180, 230, 300, 400
		// 사원의 연봉은 150 * 12
		
		sc = new Scanner(System.in);
		int salary = 0;
		String rank = null;
		boolean b = true;
		do {
			System.out.print("당신의 직급을 입력하세여 : ");
			rank = sc.nextLine();
			switch (rank) {
			case "사원" :
				salary = 150 * 12 ; b = false; break;
			case "대리" :
				salary = 180 * 12 ; b = false; break;
			case "과장" :
				salary = 230 * 12 ; b = false; break;
			case "부장" :
				salary = 300 * 12 ; b = false; break;
			case "이사" :
				salary = 400 * 12 ; b = false; break;
			default : 
				System.out.println("직급을 잘못 입력하셨습니다. 다시 입력해 주세요.");
			}
		} while (b);
		
		System.out.println("당신이 입력한 직급 " +  rank + " 에 대한 연봉은 " + salary + "입니다.");
		

	}

}
